package com.qf.hotel.service.impl;

import com.qf.hotel.dao.FoodTypeDao;
import com.qf.hotel.dao.impl.FoodTypeDaoImpl;
import com.qf.hotel.factory.BeanFactory;
import com.qf.hotel.pojo.FoodType;
import com.qf.hotel.service.FoodTypeService;
import com.qf.hotel.utils.JdbcUtils;

import java.sql.SQLException;
import java.util.List;

/**
 * 菜系业务实现类
 */
public class FoodTypeServiceImpl implements FoodTypeService {
    // FoodTypeDao foodTypeDao = new FoodTypeDaoImpl();
    FoodTypeDao foodTypeDao = (FoodTypeDao) BeanFactory.getBean("foodTypeDao");
    /**
     * 执行条件查询
     * @param foodType
     * @return
     */
    @Override
    public List<FoodType> findByCondition(FoodType foodType) throws SQLException {
        // 判断是否有条件====foodType是否为null   typeName是否是空字符串
        if (foodType == null || foodType.getTypeName()==null || foodType.getTypeName().trim().equals("")){
            // 没有输入条件的情况
            // %%
            foodType.setTypeName("%%");
        } else{
            foodType.setTypeName("%"+foodType.getTypeName().trim()+"%");// 经典川菜
        }
        return foodTypeDao.findByCondition(foodType);
    }

    /**
     * 通过id查询
     * @param id
     * @return
     */
    @Override
    public FoodType findById(int id) throws SQLException {
        return foodTypeDao.findById(id);
    }

    /**
     * 更新
     *  可以加事务处理
     *      只有一条SQL，事务可以选择不加
     * @param foodType
     * @return
     */
    @Override
    public int update(FoodType foodType) {
        int i = 0;
        try {
            /**
             * 事务的特性
             *      4大特性
             * 事务的隔离级别
             *      4隔离级别
             * 事务隔离级别的设置
             */
            JdbcUtils.begin();
            i = foodTypeDao.update(foodType);
            JdbcUtils.commit();
        } catch (SQLException e) {
            e.printStackTrace();
            JdbcUtils.rollback();
        }
        return i;
    }

}
